package com.banesco.precargadepositos.interfaz.componentes;

import javax.microedition.lcdui.Font;

import net.rim.device.api.system.Display;
import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.FontFamily;
import net.rim.device.api.ui.component.LabelField;

public class LabelTituloBanesco extends LabelField {
	
	private String _texto;
	private int _tamanofuente;
	private String fontFamily = "BBAlpha Sans";
	
	/**
	 * Constructor de la clase
	 * @param title Texto del label
	 * @param style estilo (focusable, no focusable)
	 * @param resaltado flag para indicar si se quiere el texto en negrita o no
	 */
	public LabelTituloBanesco(String title, long style,boolean resaltado)
	{
		super("", style);
		_texto = title;
		setPadding(3, 0, 3, 0);
		setearFont(resaltado);
	}
	
	protected void paint(net.rim.device.api.ui.Graphics graphic) {
		graphic.setColor(Color.WHITE);
		setText(_texto);
        super.paint(graphic);
	}

	public int getPreferredHeight() {
		return getFont().getHeight() + 8;
	}

	public int getPreferredWidth() {
		int tamanoDisplay = Display.getWidth()- 10;
		int tamanoTexto = getFont().getAdvance(_texto);

		if (tamanoTexto < tamanoDisplay)
			return tamanoTexto + 8;
		else
			return tamanoDisplay - 10;
	}

	protected void layout(int width, int height) {
		super.layout(getPreferredWidth(),height);
		setExtent(getPreferredWidth(), getHeight());
	}
	
	/**
	 * Metodo que se encarga de colocar el texto Resaltado en Negrita
	 * Y Metodo que establece el tipo de fuente a utilizar
	 * Se define un unico tipo de fuente para toda la aplicacion
	 * @param resaltado boolean para indicar si se debe realizar resaltado
	 */
	private void setearFont(boolean resaltado)
	{
		try 
		{
			int displayWidth = Display.getWidth();
			
			
			if(displayWidth < 480)
				_tamanofuente = 19;
			else
				_tamanofuente = 28;
			
			int style;
			if(resaltado)
				style = Font.STYLE_BOLD;
			else
				style = Font.STYLE_PLAIN;
			
			setFont(getFont().derive(style,_tamanofuente));
			FontFamily fontFamily1;
			fontFamily1 = FontFamily.forName(fontFamily);
			this.setFont(fontFamily1.getFont(style,_tamanofuente));
		}
		catch (ClassNotFoundException e) {
			System.out.println("Error Label" + e.getMessage());
			e.printStackTrace();
		}
		
	}

}
